//配置axios的全局基本路径，访问后端接口使用8080
axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

//====axios的前置拦截器:作用，每次访问后台【都是使用axios发送请求的】，都要将token携带到后端====
axios.interceptors.request.use(res=>{
  //从浏览器中获取token
  let token = localStorage.getItem("token");
  if(token){//配置axios的全局基本路径，访问后端接口使用8080
    axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
    Vue.prototype.$http = axios


// 获取url
    var url = location.href;
    if(url.indexOf("login.html")==-1
      && url.indexOf("register.html")==-1
      && url.indexOf("callback.html")==-1
      && url.indexOf("binder.html")==-1
    ){
      // 你访问的是受限资源   判断你有没有登录
      var logininfo = localStorage.getItem("logininfo");
      if(!logininfo){
        // 直接跳转到登录页面
        location.href="/login.html"
      }
    }

// axios前置拦截器
//====axios的前置拦截器:作用，每次访问后台【都是使用axios发送请求的】，都要将token携带到后端====
    axios.interceptors.request.use(res=>{
      //从浏览器中获取token
      let token = localStorage.getItem("token");
      if(token){
        //将token添加到请求头
        res.headers["token"] = token;
      }
      return res;//语法格式，必须返回
    })
//======================axios的前置拦截器====================//

// axios后置拦截器
//====axios的后置拦截器：作用，对后端响应的错误的json数据【没有登录，获取过期】做处理====
    axios.interceptors.response.use(res => {
      //后端响应的是没有登录的信息
      if (!res.data.success && "noLogin" === res.data.msg) {
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        location.href = "/login.html";
      }
      return res;
})
//======================axios的后置拦截器====================//
// http://bugtracker.itsource.cn/callback.html?code=011bLj0w3SzIXY2iME2w38TXb61bLj0Q&state=1
    //将token添加到请求头
    res.headers["token"] = token;
  }
  return res;//语法格式，必须返回
})
//======================axios的前置拦截器====================//

//封装公用方法 - 将字符串的参数解析为json对象
function parseUrlParams2Obj(url) {
  let paramStr = url.substring(url.indexOf("?")+1);//xxx?code=xxx&state=1
  let paramArr = paramStr.split("&");
  let paramObj = {};
  for(let i = 0;i<paramArr.length;i++){
    let paramTemp = paramArr[i];
    let paramName = paramTemp.split("=")[0];
    let paramValue= paramTemp.split("=")[1];
    paramObj[paramName] = paramValue;
  }
  return paramObj;
}

